package Common;

import Log.Logger;


public class Cenoura {

    private int Id;

    private int Energia;

    private EstadoCenoura state;
    private int x,y;

    /**
     *  Energia ganha, por uma cenoura, em T unidades de tempo.
     */
    private int Eg;

    /**
     *  Energia em que uma cenoura entra em floração.
     */
    private int Ef;

    /**
     *  Tempo de floração de uma cenoura.
     */
    private int Tf;

    /**
     *  Sementes mínimas a serem lançadas pelas cenouras.
     */
    private int Smin;

    /**
     * Sementes máximas a serem lançadas pelas cenouras.
     */
    private int Smax;

    protected Logger log;

    public Cenoura () {
    }

    public Cenoura (int id, int energy,int Eg,int Ef,int Tf,int Smin,int Smax, int line, int column) {
        this.Energia = energy;
        this.Id = id;
        this.Eg = Eg;
        this.Ef = Ef;
        this.Tf = Tf;
        this.Smin = Smin;
        this.Smax = Smax;
        this.x = column;
        this.y = line;
        this.setState(EstadoCenoura.Seed);
        log=new Logger(id,"Cenoura");
    }

    public int getEnergia () {
        return Energia;
    }

    public void setEnergia (int val) {
        this.Energia = val;
        log.Log("Energia cenoura " + Id + " alterada para: " + this.Energia);
    }

    public int getId () {
        return Id;
    }

    public void setId (int val) {
        this.Id = val;
    }
    
    public EstadoCenoura getState () {
        return state;
    }

    public void setState (EstadoCenoura val) {
        this.state = val;
        //System.out.println("Valor do estado da cenoura" + Id + " : " + val);
        //log.Log("Estado da cenoura " + Id + "alterado para: " + val);
    }

    public int getEf() {
        return Ef;
    }

    public void setEf(int Ef) {
        this.Ef = Ef;
    }

    public int getEg() {
        return Eg;
    }

    public void setEg(int Eg) {
        this.Eg = Eg;
    }

    public int getSmin() {
        return Smin;
    }

    public void setSmin(int Smin) {
        this.Smin = Smin;
    }

    public int getSmax() {
        return Smax;
    }

    public void setSmax(int Smax) {
        this.Smax = Smax;
    }

    public int getTf() {
        return Tf;
    }

    public void setTf(int Tf) {
        this.Tf = Tf;
    }

    public int getX() {
        return x;
    }

    public void setX(int x) {
        this.x = x;
    }

    public int getY() {
        return y;
    }

    public void setY(int y) {
        this.y = y;
    }

 }

